GtkEntryIconAccessible *icon = (GtkEntryIconAccessible *)action;
GtkWidget *widget;
GtkEntry *gtk_entry;
- GdkEvent event;
+ GdkEvent *event;
GdkRectangle icon_area;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (icon->entry));
return FALSE;
gtk_entry_get_icon_area (gtk_entry, icon->pos, &icon_area);
- memset (&event, 0, sizeof (event));
- event.any.type = GDK_BUTTON_PRESS;
- event.any.window = gtk_widget_get_window (widget);
- event.button.button = 1;
- event.any.send_event = TRUE;
- event.button.time = GDK_CURRENT_TIME;
- event.button.x = icon_area.x;
- event.button.y = icon_area.y;
-
- g_signal_emit_by_name (widget, "icon-press", 0, icon->pos, &event);
+
+ event = gdk_event_new (GDK_BUTTON_PRESS);
+ event->any.window = g_object_ref (gtk_widget_get_window (widget));
+ event->button.button = 1;
+ event->any.send_event = TRUE;
+ event->button.time = GDK_CURRENT_TIME;
+ event->button.x = icon_area.x;
+ event->button.y = icon_area.y;
+
+ g_signal_emit_by_name (widget, "icon-press", 0, icon->pos, event);
+ gdk_event_free (event);
return TRUE;
}